
CXX = g++
CXXFLAGS = -g -O2 -Wall -I/usr/local/boost_1_47_0

interpreter: main.o Interpreter.o Tokenizer.o StorageManager.o CrossJoin.o NaturalJoin.o NaturalJoin3Tables.o DistinctAndOrderBy.o
	$(CXX) main.o Interpreter.o Tokenizer.o StorageManager.o CrossJoin.o NaturalJoin.o NaturalJoin3Tables.o DistinctAndOrderBy.o -o interpreter

main.o: main.cpp
	$(CXX) -c main.cpp -o main.o $(CXXFLAGS)

Interpreter.o: Interpreter.cpp Interpreter.h Tokenizer.h InfixToRPN.h
	$(CXX) -c Interpreter.cpp -o Interpreter.o $(CXXFLAGS)

CrossJoin.o: CrossJoin.cpp Interpreter.h
	$(CXX) -c CrossJoin.cpp -o CrossJoin.o $(CXXFLAGS)

NaturalJoin.o: NaturalJoin.cpp Interpreter.h
	$(CXX) -c NaturalJoin.cpp -o NaturalJoin.o $(CXXFLAGS)

NaturalJoin3Tables.o: NaturalJoin3Tables.cpp Interpreter.h
	$(CXX) -c NaturalJoin3Tables.cpp -o NaturalJoin3Tables.o $(CXXFLAGS)

DistinctAndOrderBy.o: DistinctAndOrderBy.cpp Interpreter.h
	$(CXX) -c DistinctAndOrderBy.cpp -o DistinctAndOrderBy.o $(CXXFLAGS)

Tokenizer.o: Tokenizer.cpp Tokenizer.h
	$(CXX) -c Tokenizer.cpp -o Tokenizer.o $(CXXFLAGS)

StorageManager.o: Block.h Disk.h Field.h MainMemory.h Relation.h Schema.h SchemaManager.h Tuple.h Config.h StorageManager.cpp
	g++ -c StorageManager.cpp -o Storagemanager.o $(CXXFLAGS)



clean:
	rm *.o interpreter

all: interpreter
